本发明提供了一种检测多主用(Active)设备冲突的方法和装置,用于包含至少两个成员设备的智能弹性架构(IRF)系统。其中,方法包括:成员设备确定IRF系统中的连接信息或状态信息发生变化时,广播发送携带本地记录的IRF系统标识和Active设备标识的邻居通告(NA)报文;接收到该NA报文的成员设备确定NA报文中携带的IRF系统标识与本地记录的IRF系统标识一致,且NA报文中携带的Active设备标识比本地记录的Active设备标识具有更高的选举优先级时,确定IRF系统中发生多Active设备冲突。本发明能够在IRF系统中发生诸如堆叠链路断开等故障时,检测IRF系统中出现的多Active设备冲突,以便为合理的冲突处理提供前提条件。
1.一种检测多主用Active设备冲突的方法,应用于包含至少两个成员设备的智能弹性架构IRF系统,其特征在于,该方法包括:A、成员设备确定所述IRF系统的连接信息或状态信息发生变化时,广播发送携带本地记录的IRF系统标识和Active设备标识的邻居通告NA报文;B、接收到所述NA报文的成员设备确定NA报文中携带的IRF系统标识与本地记录的IRF系统标识一致,且NA报文中携带的Active设备标识比本地记录的Active设备标识具有更高的选举优先级时,确定所述IRF系统中发生多Active设备冲突。
2.根据权利要求1所述的方法,其特征在于,成员设备确定所述IRF系统的连接信息或状态信息发生变化包括以下情况中的任一种或任意组合:所述成员设备由备用Slave状态切换成Active状态;或者,所述成员设备连接的链路状态发生变化;或者,所述成员设备的端口状态发生变化;或者,所述成员设备的端口IP地址发生变化;或者,所述成员设备接收到其它成员设备发送的携带IRF系统标识和Active设备标识的NA报文。
3.根据权利要求1所述的方法,其特征在于,所述步骤B具体包括:B1、接收到所述NA报文的成员设备判断所述NA报文中携带的IRF系统标识是否与本地记录的IRF系统标识一致,如果是,执行步骤B2;否则,丢弃所述NA报文,结束步骤B;B2、判断所述NA报文中携带的Active设备ID的选举优先级是否大于本地记录的Active设备ID的选举优先级,如果是,确定所述IRF系统中发生多Active设备冲突;否则,丢弃所述NA报文。
4.根据权利要求1至3任一权项所述的方法,其特征在于,在确定所述IRF系统中发生多Active设备冲突后,还包括:更新本地记录的Active设备ID为所述NA报文中携带的Active设备ID,如果自身处于Active状态,则退出Active状态。
5.根据权利要求4所述的方法,其特征在于,在退出Active状态的同时,成员设备关闭除用户配置的保留端口之外的所有业务端口。
6.一种检测多主用Active设备冲突的装置,该装置设置在IRF系统的成员设备中,其特征在于,该装置包括:通告报文发送单元、通告报文接收单元和冲突检测单元;所述通告报文发送单元,用于在所述成员设备确定所述IRF系统的连接信息或状态信息发生变化时,广播发送携带该成员设备本地记录的IRF系统标识和Active设备标识的邻居通告NA报文;所述通告报文接收单元,用于接收NA报文,并提供给所述冲突检测单元;所述冲突检测单元,用于确定接收到的NA报文中携带的IRF系统标识与该成员设备本地记录的IRF系统标识一致,且接收到的NA报文中携带的Active设备标识比本地记录的Active设备标识具有更高的选举优先级时,确定所述IRF系统中发生多Active设备冲突。
7.根据权利要求6所述的装置,其特征在于,确定所述IRF系统的连接信息或状态信息发生变化包括以下情况中的任一种或任意组合:所述成员设备由备用Slave状态切换成Active状态;或者,所述成员设备连接的链路状态发生变化;或者,所述成员设备的端口状态发生变化;或者,所述成员设备的端口IP地址发生变化;或者,所述成员设备接收到其它成员设备发送的携带IRF系统标识和Active设备标识的NA报文。
8.根据权利要求6所述的装置,其特征在于,所述冲突检测单元具体包括:第一判断子单元、第二判断子单元和冲突确定子单元;所述第一判断子单元,用于判断接收到的NA报文中携带的IRF系统标识是否与该成员设备本地记录的IRF系统标识一致,如果是,向所述第二判断子单元发送判断通知;否则,丢弃接收到的NA报文;所述第二判断子单元,用于接收到所述判断通知后,判断接收到的NA报文中携带的Active设备标识是否比本地记录的Active设备标识具有更高的选举优先级,如果是,向所述冲突确定子单元发送确定通知;否则,丢弃接收到的NA报文;所述冲突确定子单元,用于接收到所述确定通知后,确定所述IRF系统中发生多Active设备冲突。
9.根据权利要求6至8任一权项所述的装置,其特征在于,该装置还包括:冲突处理单元,用于在所述冲突检测单元确定所述IRF系统中发生多Active设备冲突时,更新所述成员设备本地记录的Active设备ID为所述接收到的NA报文中携带的Active设备ID,如果该成员设备处于Active状态,则退出Active状态。
10.根据权利要求9所述的装置,其特征在于,所述冲突处理单元,还用于在该成员设备退出Active状态时,关闭该成员设备的除用户配置的保留端口之外的所有业务端口。
技术领域本发明涉及网络通信技术领域,特别涉及一种检测多主用设备冲突的方法和装置。
背景技术智能弹性架构(IRF,Intelligentxa0Resilientxa0f
ramework)系统,是通过电缆将多台设备连接起来形成一台逻辑设备,其中IRF系统中的各设备通常称为成员设备,各成员设备之间的链路称为堆叠链路。在IRF系统中,会选举出一个主用(Active)设备,其它设备作为备用(Slave)设备。由IRF系统的内部机制,Active设备会在IRF系统内部发送携带自身设备信息(例如Active设备ID)的通告报文,各成员设备会在本地记录Active设备信息,另外,在各成员设备中还会记录IRF系统ID,同一个IRF系统中的各成员设备记录的IRF系统ID相同。如果IRF系统中出现堆叠链路断裂时,可能会引起IRF系统中出现多个Active设备。如图1所示,在IPv6组网环境下,假设IRF系统中包含两个成员设备:成员设备1和成员设备2。端口1和端口2为三层接口,并分别配置ipv6地址,或者端口1和端口2为二层接口,并加入某Vlan,创建对应Vlan虚接口,在Vlan虚接口上配置ipv6地址。在堆叠链路断裂前成员设备1为Active设备,当成员设备1和成员设备2之间的堆叠链路断裂后,成员设备2则会重新选举自身为Active设备,由于成员设备1此时也处于Active状态,这可能会造成网络无法正常工作。例如,两个处于Active设备具有相同的虚接口,且配置同一个IP地址,造成IP地址冲突。
发明内容有鉴于此,本发明提供了一种检测多主用设备冲突的方法和装置,用于检测IRF系统中出现多Active设备冲突的问题,以便为合理的冲突处理提供前提条件。一种检测多Active设备冲突的方法,应用于包含至少两个成员设备的智能弹性架构IRF系统,该方法包括:A、成员设备确定所述IRF系统的连接信息或状态信息发生变化时,广播发送携带本地记录的IRF系统标识和Active设备标识的邻居通告NA报文;B、接收到所述NA报文的成员设备确定NA报文中携带的IRF系统标识与本地记录的IRF系统标识一致,且NA报文中携带的Active设备标识比本地记录的Active设备标识具有更高的选举优先级时,确定所述IRF系统中发生多Active设备冲突。一种检测多Active设备冲突的装置,该装置设置在IRF系统的成员设备中,该装置包括:通告报文发送单元、通告报文接收单元和冲突检测单元;所述通告报文发送单元,用于在所述成员设备确定所述IRF系统的连接信息或状态信息发生变化时,广播发送携带该成员设备本地记录的IRF系统标识和Active设备标识的邻居通告NA报文;所述通告报文接收单元,用于接收NA报文,并提供给所述冲突检测单元;所述冲突检测单元,用于确定接收到的NA报文中携带的IRF系统标识与该成员设备本地记录的IRF系统标识一致,且接收到的NA报文中携带的Active设备标识比本地记录的Active设备标识具有更高的选举优先级时,确定所述IRF系统中发生多Active设备冲突。由以上技术方案可以看出,本发明提供了一种具体的用于IRF系统的冲突检测机制,能够在诸如IRF系统中发生堆叠链路断裂等故障时,检测出IRF系统中发生的多Active设备冲突,以便于及时采取合理的冲突解决方法,避免网络无法正常工作。
附图说明图1为IRF系统中堆叠链路断裂引起的多Active冲突示意图;图2为本发明提供的主要方法流程图;图3为扩展后的NA报文的格式示意图;图4为本发明提供的成员设备对NA报文的处理流程图;图5为本发明提供的一个实例图;图6本发明提供的装置结构示意图。
具体实施方式为了使本发明的目的、技术方案和优点更加清楚,下面结合附图和具体实施例对本发明进行详细描述。本发明提供的主要方法可以如图2所示,主要包括以下步骤:步骤201:IRF系统中成员设备的连接信息或状态信息发生变化时,该成员设备广播发送携带本地记录的IRF系统标识和Active设备标识的邻居通告(NA)报文。步骤202:接收到NA报文的成员设备确定NA报文中携带的IRF系统标识与本地记录的IRF系统标识一致,且NA报文中携带的Active设备标识比本地记录的Active设备标识具有更高的选举优先级时,确定IRF系统中发生多Active设备冲突。在确定发生多Active设备冲突时,可以更新本地记录的Active设备标识为NA报文中携带的Active设备标识,如果自身处于Active状态,则退出Active状态。在上述本发明提供的方法中,使用IPv6协议栈中的邻居发现(ND)协议,对NA报文进行扩展,增加一个扩展选项:IRF系统标识选项(IRFxa0SystemID),如图3所示。图3为扩展后的NA报文的格式示意图,类型(Type)字段用于指示报文类型,例如可以采用254标识NA报文;长度(Length)字段用于指示选项长度,以8字节为单位;IRFxa0Systemxa0ID字段用于携带IRF系统标识和Active设备标识。其中,IRF系统标识可以包括:IRF域ID,还可以进一步包括系统名称(sysname);Active设备标识可以为Active设备的成员设备ID。在上述步骤201中,IRF系统中成员设备发送携带IRF系统标识和Active设备标识的NA报文的时机可以包括以下情况中的一种或任意组合:1)当成员设备由Slave状态切换成Active状态时,主动广播发送携带本地记录的IRF系统标识和Active设备标识的NA报文。例如,图1中成员设备2由于堆叠链路断裂从Slave状态切换成Active状态,可以广播发送携带IRF系统标识和Active设备标识(此时成员设备2发送的Active设备标识以及本地记录的Active设备标识均已是成员设备2的ID)的NA报文。2)当成员设备所连接的链路状态发生变化时,广播发送IRF系统标识和Active设备标识的NA报文。例如,成员设备所连接的堆叠链路断裂时,可以发送上述NA报文,图1中成员设备1所连接的堆叠链路断裂,则可以发送携带IRF系统标识和Active设备标识的NA报文。3)当成员设备的端口状态发生变化,例如变为启动(Up)状态,则广播发送携带IRF系统标识和Active设备标识的NA报文。4)当成员设备的端口IP地址发生变化时,广播发送携带IRF系统标识和Active设备标识的NA报文。5)当成员设备接收到携带IRF系统标识和Active设备标识的NA报文后,发送携带本地记录的IRF系统标识和Active设备标识的NA报文。下面对步骤202中成员设备对NA报文的处理过程进行详细描述。图4为成员设备对NA报文的处理流程图,在该实施例中,以NA报文中携带sysname、IRF域ID和Active设备ID为例,如图4所示,处理过程可以具体包括:步骤401:成员设备接收到NA报文后,将NA报文中携带的sysname和IRF域ID分别与该成员设备本地记录的sysname和IRF域ID进行比较,如果存在一个不一致,则丢弃该NA报文,结束对NA报文的处理流程;如果均一致,执行步骤402。通常IRF域ID在网络中是唯一的,sysname可能会存在不唯一的情况,只有在sysname和IRF域ID均与本地记录的sysname和IRF域ID一致的情况下,说明该NA报文来自该成员设备所在的IRF系统。如果NA报文不是来自成员设备所在的IRF系统,则不需要对该NA报文进行处理,直接丢弃;如果NA报文来自成员设备所在的IRF系统,则该NA报文可以用于检测本IRF系统中是否存在多Active冲突的问题,继续执行以下步骤。步骤402:判断NA报文中携带的Active设备ID的选举优先级是否大于本地记录的Active设备ID的选举优先级,如果否,则丢弃该NA报文,结束对NA报文的处理流程;如果是,执行步骤403。在IRF系统中各成员设备是按照选举优先级进行Active设备的选举的,可以采用Active设备ID从大到小对应选举优先级从低到高的方式,那么在本步骤中进行比较时,可以判断NA报文中携带的Active设备ID是否小于本地记录的Active设备ID,如果是,则说明NA报文中携带的Active设备ID的选举优先级大于本地记录的Active设备ID的选举优先级。步骤403:确定IRF系统中出现多Active设备冲突,更新本地记录的Active设备ID为NA报文中携带的Active设备ID,如果自身处于Active状态,则退出Active状态。NA报文中携带的Active设备ID的选举优先级大于本地记录的Active设备ID的选举优先级,因此,说明发送该NA报文的成员设备应该是Active设备,本地记录的Active设备ID应该随之保持一致。如果收到该NA报文的成员设备自身处于Active状态,则说明与该IRF系统中发生多Active冲突,且该成员设备的选举优先级较低,退出Active状态。在退出Active状态的同时,成员设备会关闭(Shutdown)除用户配置的保留端口之外的业务端口。即可以保持保留端口Up。例如,可以保留所有二层端口Up。端口被Shutdown之后,该端口上的相关配置也失效,例如IP地址的配置等。这样就可以避免发生IP地址冲突等问题。成员设备退出Active状态后即可以进入recovery状态,处于recovery状态的成员设备可以不参与Active设备的选举直至故障恢复后退出recovery状态,从而保证该成员设备在recovery状态时不会再引起多Active设备冲突。下面仍以图1所示架构为例,对上述方法进行举例说明。当成员设备1和成员设备2之间的堆叠链路断裂时,成员设备2自身选举为Active,本地记录的Active设备ID为成员设备2的ID。由于状态从Slave切换为Active,因此,成员设备2广播发送携带IRF系统标识和本地记录的Active设备ID(即成员设备2的ID)的NA报文。由于成员设备1所连接的链路状态发生变化,即由Up变为Down,因此,也会广播发送携带IRF系统标识和本地记录的Active设备ID(即成员设备1的ID)的NA报文。成员设备2接收到成员设备1发送的NA报文后,首先判断出NA报文中携带的IRF系统标识与本地记录的一致,进一步判断出NA报文中携带的Active设备ID具有比本地记录的Active设备ID更高的选举优先级,因此,成员设备2确定该IRF系统中发生了多Active设备冲突。成员设备2将本地记录的Active设备ID更新为NA报文中携带的Active设备ID,即成员设备1的ID,并退出Active状态,同时关闭三层端口,如果端口2为三层端口,则关闭端口2,端口2上的IP地址也随即失效。成员设备1接收到成员设备2发送的NA报文后,首先判断出NA报文中携带的IRF系统标识与本地记录的一致,进一步判断出NA报文中携带的Active设备ID的选举优先级小于本地记录的Active设备ID的选举优先级,因此,直接丢弃该NA报文,不需要做处理。再举一个例子,如图5所示,假设起初IRF系统中成员设备1为Active状态、成员设备2处于Slave状态,端口1处于UP状态,端口2处于Down状态,如果此时成员设备1和成员设备2之间的堆叠链路断裂,成员设备2选举自身为Active状态。如果此时通过手工配置或故障恢复等手段使得端口2恢复为UP状态,通过本发明的方法成员设备2可以发送携带IRF系统标识和成员设备2标识的NA报文,成员设备1收到该NA报文后,通过将NA报文携带的内容与本地记录的IRF系统标识和Active设备标识进行比较,确定IRF系统标识一致,且NA报文携带的Active设备标识的选举优先级比本地记录的Active设备标识的选举优先级低,因此,成员设备1保持Active状态不变,同时会回复携带IRF系统标识和成员设备1标识的NA报文。成员设备2接收到携带IRF系统标识和成员设备1标识的NA报文后,通过将NA报文携带的内容与本地记录的IRF系统标识和Active设备标识进行比较,确定IRF系统标识一致,且NA报文携带的Active设备标识的选举优先级比本地记录的Active设备标识的选举优先级高,因此,成员设备2退出Active状态,这样就避免了IRF系统中存在两个Active设备的冲突,增加了网络的健壮性。可见通过本发明提供的方法能够成功检测出IRF系统中的多Active设备冲突,以便采取必要的冲突处理方式,避免网络无法正常工作。以上是对本发明所提供的方法进行的详细描述,下面对本发明所提供的装置进行详细描述。该装置可以设置在IRF系统的成员设备中,如图6所示,该装置可以包括:通告报文发送单元600、通告报文接收单元610和冲突检测单元620。通告报文发送单元600,用于在成员设备确定IRF系统的连接信息或状态信息发生变化时,广播发送携带该成员设备本地记录的IRF系统标识和Active设备标识的邻居通告NA报文。通告报文接收单元610,用于接收NA报文,并提供给冲突检测单元620。冲突检测单元620,用于确定接收到的NA报文中携带的IRF系统标识与该成员设备本地记录的IRF系统标识一致,且接收到的NA报文中携带的Active设备标识比本地记录的Active设备标识具有更高的选举优先级时,确定IRF系统中发生多Active设备冲突。其中,上述确定IRF系统的连接信息或状态信息发生变化可以具体包括以下情况中的一种或任意组合:成员设备由备用Slave状态切换成Active状态;或者,成员设备连接的链路状态发生变化;或者,成员设备的端口状态发生变化;或者,成员设备的端口IP地址发生变化;或者,成员设备接收到其它成员设备发送的携带IRF系统标识和Active设备标识的NA报文。具体地,上述冲突检测单元620可以包括:第一判断子单元621、第二判断子单元622和冲突确定子单元623。第一判断子单元621,用于判断接收到的NA报文中携带的IRF系统标识是否与该成员设备本地记录的IRF系统标识一致,如果是,向第二判断子单元622发送判断通知;否则,丢弃接收到的NA报文。第二判断子单元622,用于接收到判断通知后,判断接收到的NA报文中携带的Active设备标识是否比本地记录的Active设备标识具有更高的选举优先级,如果是,向冲突确定子单元623发送确定通知;否则,丢弃接收到的NA报文。冲突确定子单元623,用于接收到确定通知后,确定IRF系统中发生多Active设备冲突。更进一步地,该装置还可以包括:冲突处理单元630,用于在冲突检测单元620确定IRF系统中发生多Active设备冲突时,更新成员设备本地记录的Active设备ID为接收到的NA报文中携带的Active设备ID,如果该成员设备处于Active状态,则退出Active状态。另外,冲突处理单元630,还可以用于在该成员设备退出Active状态时,关闭该成员设备的除用户配置的保留端口之外的所有业务端口。由以上描述可以看出,本发明提供了一种具体的用于IRF系统的冲突检测机制,能够在诸如IRF系统中发生堆叠链路断裂等故障时,检测出IRF系统中发生的多Active设备冲突,以便于及时采取合理的冲突解决方法,避免网络无法正常工作。以上所述仅为本发明的较佳实施例而已,并不用以限制本发明,凡在本发明的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本发明保护的范围之内。